package com.hhh.corejava.code06_数组;

/**
 * @autor 黄焕晖
 * @date 2025年10月24日19:53
 *
 **/
public class ArrayUtil {

    public static void main(String[] args) {
        int[] nums={10,20,30,40,50,60};
        int[] dest=new int[nums.length];
        copyArray(nums,dest);
        printArray(dest);
        System.out.println("\n================================");
        change(nums,0,nums.length-1);
        printArray(nums);
        System.out.println("\n================================");
        reverse(nums);
        printArray(nums);
    }

    // 定义一个数组工具类,实现以下方法
// 1.实现复制数组的方法,将源数组的所有元素复制到目标数组中。两个参数:源数组,目标数组
    public static void copyArray(int[] src,int[] dest){
        for (int i=0;i<src.length;i++){
            dest[i]=src[i];
        }

    }
// 2.实现输出数组中元素的功能,要求数组的元素以短横杠-分隔
    public static void printArray(int[] arr){
        for (int i=0;i<arr.length;i++){
            if(i==arr.length-1){
                System.out.print(arr[i]);
            }else{
                System.out.print(arr[i]+"-");
            }
        }
    }
// 3.实现交换指定数组中指定位置的两个元素的值
    public static void change(int[] arr,int i,int j){
        int temp=arr[i];
        arr[i]=arr[j];
        arr[j]=temp;

    }
// 4.将指定数组的所有元素颠倒过来,倒序
    public static void reverse(int[] arr){
        for(int i =0;i<arr.length/2;i++){
            change(arr,i,arr.length-1-i);
        }

    }
// 5.随机生成一个int类型的数组,通过方法的参数控制数组的长度、以及取值范围
    // 其值为指定范围x-y之间的整数,且不能重复。参数有三个:数组长度、最小值、最大值
    public static void randomArray(int len,int min,int max){
        int[] arr = new int[len];
        for (int i=0;i<arr.length;i++){
            arr[i]=(int)(Math.random()*(max-min+1)+min);
            for(int j=0;j<i;j++){
                if(arr[i]==arr[j]){
                    i--;
                    break;
                }
            }
        }
    }
}
